//public class test {

    //学生表student sid  sname
    //班级表class cid  cname sid
    //科目表subject sub_id 课程名字 subject_name
    //分数表score sub_id sid score

//
//    select cid, sname, score from class c, score s ,student where sid = s.sid and c.sid = sid and
//    group by cid  order by score desc limit 5;


 /*   代码编程题：两数相加

    给出两个 非空 的链表用来表示两个非负的整数。其中，它们各自的位数是按照 逆序 的方式存储的，并且它们的每个节点只能存储 一位 数字。
    如果，我们将这两个数相加起来，则会返回一个新的链表来表示它们的和。
    您可以假设除了数字 0 之外，这两个数都不会以 0 开头。

    示例：

    输入：(2 -> 4 -> 3) + (5 -> 6 -> 4)
    输出：7 -> 0 -> 8
    原因：342 + 465 = 807*/


    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode() {}
     *     ListNode(int val) { this.val = val; }
     *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
     * }
     */
//class Solution {
//    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
//        ListNode res = new ListNode(-1);
//        ListNode temp = res;
//
//        int flag = 0; //进位
//        while(l1!=null || l2!=null){
//            //取各自节点的值
//            int num1 = l1==null ? 0 : l1.val;
//            int num2 = l2==null ? 0 : l2.val;
//
//            int sum = num1 + num2 + flag;
//            flag = sum/10;  //记录进位
//            sum = sum % 10;  //当前节点值
//            temp.next = new ListNode(sum);
//
//            temp = temp.next;
//            if(l1!=null){
//                l1 = l1.next;
//            }
//            if(l2!=null){
//                l2 = l2.next;
//            }
//        }
//        if (flag==1){
//            temp.next = new ListNode(1);
//        }
//        return res;
//
//    }
//}
/**
 *
 * 4个人在晚上过一座小桥，
 * 过桥时必须要用到手电筒，
 * 只有一枚手电筒，每次最多只可以有两人通过，
 * 4个人的过桥速度分别为1分钟、2分钟、5分钟、10分钟，
 * 试问最少需要多长时间4人才可以全部通过小桥？
 * */

